#include<stdio.h>

int a[20]={0},sum=1000000,x,num=0,b[20]={0},cyc=2;

void order(int a[],int n){
	int i=0,kg=0,t,j;
	for(i=0;i<n-1;i++){
		kg=1;
		for(j=0;j<n-1-i;j++){
			if(a[j]>a[j+1]){
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
				kg=0;
			}
		}
		if(kg==1) break;
	}
}
void fun(int a[],int n)
{
	int sign,t=100000,flag,p;
	for(sign=0;sign<n;sign++)
	{
		if(a[sign]<t)
		{
			t=a[sign];
			flag=sign;
		}
		if(sum+a[sign]>=x)
		{
			b[num]=sum+a[sign];
			num++;
		}
	}
	sum+=t;
	if(cyc!=n)
	{
		cyc++;
		a[flag]=1000000;
		fun(a,n);
	}
}
int main()
{
	int n,sign,key=-1,flag,price=100000;
	scanf("%d %d",&n,&x);
	for(sign=0;sign<n;sign++)
	{
		scanf("%d",&a[sign]);
	}
	order(a,n);
	for(sign=0;sign<n;sign++)
	{
		if(a[sign]>=x) 
		{
			b[num]=a[sign];
			num++; 
		}
		if(a[sign]<sum)
		{
			sum=a[sign];
			key=sign;
		}
	}
	a[key]=1000000;
	fun(a,n);
	for(flag=0;flag<n;flag++)
	{
		if(b[flag]>=x&&b[flag]<price) price=b[flag];
	}
	printf("%d",price);

	return 0;
}
